package com.xbongbong.pro.statistic.pojo;

import com.alibaba.fastjson.JSONArray;
import com.xbongbong.paas.toolbox.wrap.QueryIgnore;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;

/**
 * @author 梁鲁江
 * @version v1.0
 * @date 2019/2/13 14:11
 * @since v1.0
 */
@Setter
@Getter
@ToString
public class SlaveSourcePojo implements Serializable{
    private static final long serialVersionUID = 2734792206827087369L;
    private Long appId;
    /**
     * formId加到查询条件里 Bi2020  2020-6-8
     */
    private Long formId;
    /**
     * 例如合同产品里存一下对应的合同
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Long linkFormId;
    @Getter(onMethod_ = {@QueryIgnore})
    private Long menuId;
    @Getter(onMethod_ = {@QueryIgnore})
    private String name;
    /**
     * 菜单标示，主要用于saas菜单识别
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer businessType;
    /**
     * 1为saas菜单，2为自建菜单
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer saasMark;
    /**
     * 经销商标识，1是，0否
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer distributorMark;
    /**
     * 是否在data内 1在  0不在
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer inData;
    /**
     * 第二个关联字段 是否在data内 1在  0不在
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer secondInData;
    /**
     * 关联字段
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String linkAttr;
    /**
     * 上面的用做存储，后面的copy用做计算
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String linkAttrCopy;
    //TODO 暂时保留
    @Getter(onMethod_ = {@QueryIgnore})
    private String secondLinkAttr;
    @Getter(onMethod_ = {@QueryIgnore})
    private String secondLinkAttrCopy;
    /**
     * 主表单的第二个关联字段
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String linkAttrB ;
    /**
     * 主表单的第二个关联字段，后面的copy用做计算
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String linkAttrBCopy ;
    /**
     * 主表单的第
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String linkAttrC ;
    /**
     * 主表单的第
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String linkAttrCCopy ;

    @Getter(onMethod_ = {@QueryIgnore})
    private Integer linkAttrCInData;
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer linkAttrCFieldType;
    /**
     * 主表单的第
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String linkAttrD ;
    /**
     * 主表单的第
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String linkAttrDCopy ;
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer linkAttrDInData;
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer linkAttrDFieldType;
    /**
     * 主表单的第
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String linkAttrE ;
    /**
     * 主表单的第
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String linkAttrECopy ;
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer linkAttrEInData;
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer linkAttrEFieldType;
    /**
     * 字段类型
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer fieldType;
    /**
     * 主表单的第二个关联字段的类型
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer secondFieldType;
    /**
     * 存放位置  A、B、C
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer location;

    /**
     * 关联数据的关联名称，单表内唯一
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private List<String> linkedSourceName;

    /**
     * 关联数据的关联字段attr，单表内唯一
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private String driveLinkedAttr;
    /**
     * 已选择的字段 格式【】
     */
    private JSONArray selectedAttr;
}
